cmake_minimum_required(VERSION 3.10)
project(LearnCPP)

# 设置C++标准为C++20
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED True)

# 设置编译器警告的标志（对于GCC和Clang）
add_compile_options(-Wall -Wextra -pedantic)

# 启用编译器内联警告（只有当编译器支持时才有用）
add_compile_options(-Winline)

# 包含的头文件目录
include_directories(${PROJECT_SOURCE_DIR}/include)

# 添加源文件目录
file(GLOB SOURCES "${PROJECT_SOURCE_DIR}/src/*.cpp")

# 创建可执行文件
add_executable(LearnCPP ${SOURCES})

# 配置详细的构建日志，以便查看编译器的具体行为
# set(CMAKE_VERBOSE_MAKEFILE ON)

# 如果你想生成汇编代码来检查是否进行了内联，可以添加以下选项
# 请注意，这会生成汇编代码而不是编译成可执行文件
# add_compile_options(-S)

# 如果使用的是Clang，并且想获取关于内联优化的详细信息
# add_compile_options(-Rpass=inline)

# 如果你有测试代码，你可以这样设置：
# file(GLOB TEST_SOURCES "${PROJECT_SOURCE_DIR}/test/*.cpp")
# add_executable(Test ${TEST_SOURCES})
